package cn.itcast.type;

import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendCallback;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;

// 生产者
public class Producer {
    public static void main(String[] args) throws Exception {
        // 1. 谁来发?
        DefaultMQProducer producer = new DefaultMQProducer("group1");

        // 2. 发给谁?
        producer.setNamesrvAddr("127.0.0.1:9876");
        producer.start();

        // 3. 怎么发？
        // 4. 发什么?
        Message message = new Message("topic1", "VIP", "hello world".getBytes());
        for (int i = 0; i < 10; i++) {
            // 延迟时间
            // message.setDelayTimeLevel(3);
            // 等级 1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h

            // 同步发送
            // SendResult send = producer.send(message);
            // 异步发送
            producer.send(message, new SendCallback() {
                // 成功
                @Override
                public void onSuccess(SendResult sendResult) {
                    System.out.println(sendResult);
                }

                // 失败
                @Override
                public void onException(Throwable throwable) {
                    System.out.println(throwable);
                }
            });

            // 5. 发的结果是什么？
            System.out.println("异步发送第" + i + "条");
        }

        // 6. 打扫战场？
        //producer.shutdown();
    }
}